package com.google.code.jtasks.client.ui.commands;

import com.google.code.jtasks.client.exceptions.TerminateException;
import com.google.code.jtasks.client.ui.Command;
import com.google.code.jtasks.client.ui.ScreenHelper;
import com.google.inject.Inject;

/**
 * Простейшая команда: спрашивает, действительно ли пользователь хочет выйти, и выбрасывает
 * {@link TerminateException}, если ответ был утвердительным.
 */
public class QuitCommand implements Command {
    private final ScreenHelper helper;

    @Inject
    QuitCommand(ScreenHelper helper) {
        this.helper = helper;
    }

    @Override
    public String name() {
        return "Quit";
    }

    @Override
    public String description() {
        return "Terminates the program";
    }

    @Override
    public void execute() throws TerminateException {
        if (helper.ask(5, 2, "Really quit?")) {
            throw new TerminateException();
        }
    }
}
